React์ experimental_LegacyHidden API ์ข ํฉ ๊ฐ์ด๋. ๋ ๊ฑฐ์ ์ฝ๋์ ๋์์ฑ ๊ธฐ๋ฅ์ ์ ์ง์ ์ผ๋ก ๋์ ํ๊ธฐ ์ํ ๋ชฉ์ , ๊ตฌํ, ์ด์ ๋ฐ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ค๋ฃน๋๋ค.
React experimental_LegacyHidden: ๋ ๊ฑฐ์ ์ปดํฌ๋ํธ ์จ๊ธฐ๊ธฐ ๋ง์คํฐํ๊ธฐ
React์ ๋ฐ์ ์ ์น ๊ฐ๋ฐ์ ์ต์ ์ ์ ์๋กญ๊ณ ํฅ๋ฏธ๋ก์ด ๊ธฐ๋ฅ๋ค์ ๊ณ์ํด์ ์ ๋ณด์ด๊ณ ์์ต๋๋ค. ์ด๋ฌํ ํ์ ์ค ํ๋๋ experimental_LegacyHidden API๋ก, ๊ธฐ์กด์ ๋ณต์กํ ๋ ๊ฑฐ์ React ์ ํ๋ฆฌ์ผ์ด์
๋ด์์ ๋์์ฑ ๊ธฐ๋ฅ์ ์ ์ง์ ์ผ๋ก ๋์
ํ ์ ์๋๋ก ์ค๊ณ๋ ๊ฐ๋ ฅํ ๋๊ตฌ์
๋๋ค. ์ด ๊ฐ์ด๋๋ experimental_LegacyHidden์ ๋ชฉ์ , ๊ตฌํ, ์ด์ ๋ฐ ์ค์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํ๊ตฌํ๋ฉฐ ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ค์ด ์์ ๊ฐ์ ๊ฐ๊ณ React ํ๋ก์ ํธ๋ฅผ ํ๋ํํ ์ ์๋๋ก ํฌ๊ด์ ์ธ ๊ฐ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ ๊ฑฐ์ ์ปดํฌ๋ํธ ์จ๊ธฐ๊ธฐ์ ํ์์ฑ ์ดํดํ๊ธฐ
๋ง์ ์กฐ์ง๋ค์ ์ค๋๋ ๋๊ธฐ์ ๋ ๋๋ง ํจํด์ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋ ๋๊ท๋ชจ React ์ ํ๋ฆฌ์ผ์ด์
์ ์ ์ง ๊ด๋ฆฌํ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์
์ React์ ๋์์ฑ ๋ ๋๋ง ๊ธฐ๋ฅ์ผ๋ก ์ ํํ๋ ๊ฒ์ ์๋นํ ๋ฆฌํฉํ ๋ง๊ณผ ํ
์คํธ๋ฅผ ์๊ตฌํ๋ ์ด๋ ค์ด ์์
์ผ ์ ์์ต๋๋ค. experimental_LegacyHidden API๋ ๊ฐ๋ฐ์๋ค์ด ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์
์ ์ค๋จ์ํค์ง ์๊ณ ์ ์ง์ ์ผ๋ก ๋์์ฑ ๊ธฐ๋ฅ์ ๋์
ํ ์ ์๋ ๋ค๋ฆฌ ์ญํ ์ ํฉ๋๋ค.
ํต์ฌ ๊ณผ์ ๋ ๋์์ฑ ๋ ๋๋ง์ด ์ค๋จ ๊ฐ๋ฅํ๋๋ก ์ค๊ณ๋์ง ์์ ๋ ๊ฑฐ์ ์ปดํฌ๋ํธ์์ ๋ฏธ๋ฌํ ํ์ด๋ฐ ๋ฌธ์ ๋ ์๊ธฐ์น ์์ ๋ถ์์ฉ์ ๋๋ฌ๋ผ ์ ์๋ค๋ ์ฌ์ค์ ์์ต๋๋ค. ์ ํ ์ค์ ์ด๋ฌํ ์ปดํฌ๋ํธ๋ค์ ์ ํ์ ์ผ๋ก ์จ๊น์ผ๋ก์จ ๊ฐ๋ฐ์๋ค์ ์ด๋ฌํ ๋ฌธ์ ๋ค์ ๋ ํจ๊ณผ์ ์ผ๋ก ๊ฒฉ๋ฆฌํ๊ณ ํด๊ฒฐํ ์ ์์ต๋๋ค.
experimental_LegacyHidden ์๊ฐ
experimental_LegacyHidden API๋ React ์ปดํฌ๋ํธ ํธ๋ฆฌ์ ํ์ ํธ๋ฆฌ๋ฅผ ์ผ์์ ์ผ๋ก ์จ๊ธฐ๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. ์ด ์จ๊น ๊ธฐ๋ฅ์ ๋จ์ํ ์๊ฐ์ ์ผ๋ก ๊ฐ์ถ๋ ๊ฒ์ด ์๋๋ผ, ๋์์ฑ ๋ ๋๋ง์ ํน์ ๋จ๊ณ ๋์ React๊ฐ ์จ๊ฒจ์ง ์ปดํฌ๋ํธ๋ฅผ ์กฐ์ (reconciling)ํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฌธ์ ๊ฐ ์๋ ๋ ๊ฑฐ์ ์ปดํฌ๋ํธ๋ ์ํฅ์ ๋ฐ์ง ์๋ ์ํ๋ก ๋๊ณ , ์ ํ๋ฆฌ์ผ์ด์
์ ๋๋จธ์ง ๋ถ๋ถ์ ๋์์ฑ์ ์ด์ ์ ๋๋ฆด ์ ์์ต๋๋ค.
์ด API๋ ์คํ์ (experimental)์ผ๋ก ๊ฐ์ฃผ๋๋ฉฐ, ์ด๋ ์์ง ๊ฐ๋ฐ ์ค์ด๊ณ ๋ณ๊ฒฝ๋ ์ ์์์ ์๋ฏธํฉ๋๋ค. ํ๋ก์ ํธ์์ ์ฌ์ฉํ ๋๋ ์ต์ React ๋ฌธ์ ๋ฐ ๋ฆด๋ฆฌ์ค ๋ ธํธ๋ฅผ ํญ์ ํ์ธํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
experimental_LegacyHidden์ ์๋ ๋ฐฉ์
experimental_LegacyHidden ์ปดํฌ๋ํธ๋ ๋จ์ผ prop์ธ unstable_hidden์ ๋ฐ์ต๋๋ค. ์ด prop์ ์ปดํฌ๋ํธ์ ๊ทธ ์์๋ค์ ์จ๊ธธ์ง ์ฌ๋ถ๋ฅผ ์ ์ดํ๋ ๋ถ๋ฆฌ์ธ(boolean) ๊ฐ์
๋๋ค. unstable_hidden์ด true๋ก ์ค์ ๋๋ฉด, ํด๋น ์ปดํฌ๋ํธ๋ ์จ๊ฒจ์ง๊ณ ์ ํ ์ค ํน์ ๋ ๋๋ง ๋จ๊ณ์์ ์ ์ธ๋ฉ๋๋ค. false๋ก ์ค์ ๋๋ฉด ์ปดํฌ๋ํธ๋ ์ ์์ ์ผ๋ก ๋์ํฉ๋๋ค.
๋ค์์ experimental_LegacyHidden์ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ์ ์ธ ์์์
๋๋ค.
๊ธฐ๋ณธ ์ฌ์ฉ ์์
import { unstable_LegacyHidden as LegacyHidden } from 'react-dom';
function MyComponent() {
const [isHidden, setIsHidden] = React.useState(false);
return (
);
}
function LegacyComponent() {
return ์ด๊ฒ์ ๋ ๊ฑฐ์ ์ปดํฌ๋ํธ์
๋๋ค.
;
}
์ด ์์ ์์ LegacyComponent๋ experimental_LegacyHidden์ผ๋ก ๊ฐ์ธ์ฌ ์์ต๋๋ค. isHidden ์ํ ๋ณ์๋ ์ปดํฌ๋ํธ๊ฐ ์จ๊ฒจ์ง์ง ์ฌ๋ถ๋ฅผ ์ ์ดํฉ๋๋ค. ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์ํ๊ฐ ํ ๊ธ๋๊ณ ์ปดํฌ๋ํธ๋ ๊ทธ์ ๋ฐ๋ผ ํ์๋๊ฑฐ๋ ์จ๊ฒจ์ง๋๋ค.
์ค์ฉ์ ์ธ ์ฌ์ฉ ์ฌ๋ก ๋ฐ ์์
experimental_LegacyHidden์ด ๋งค์ฐ ์ ์ฉํ ์ ์๋ ๋ช ๊ฐ์ง ์ค์ฉ์ ์ธ ์๋๋ฆฌ์ค๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
1. ๋์์ฑ ๊ธฐ๋ฅ์ ์ ์ง์ ๋์
์๋ง์ ์ปดํฌ๋ํธ๊ฐ ์๊ณ ๊ทธ์ค ๋ค์๊ฐ ์ค๋๋ React ํจํด์ผ๋ก ์์ฑ๋ ๋๊ท๋ชจ ์ด์ปค๋จธ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ค๊ณ ์์ํด ๋ณด์ญ์์ค. ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ๊ธฐ ์ํด Suspense๋ Transitions์ ๊ฐ์ ๋์์ฑ ๊ธฐ๋ฅ์ ๋์ ํ๊ณ ์ถ์ง๋ง, ๋ ๊ฑฐ์ ์ปดํฌ๋ํธ์์ ์ ์ฌ์ ์ธ ํธํ์ฑ ๋ฌธ์ ๊ฐ ์ฐ๋ ค๋ฉ๋๋ค.
experimental_LegacyHidden์ ์ฌ์ฉํ์ฌ ์ ํ ์ค์ ๋ฌธ์ ๊ฐ ๋ ๊ฒ์ผ๋ก ์๋ ค์ง ์ปดํฌ๋ํธ๋ฅผ ์ ํ์ ์ผ๋ก ์จ๊ธธ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ ๊ฑฐ์ ์ปดํฌ๋ํธ๋ฅผ ์ ์ง์ ์ผ๋ก ๋ฆฌํฉํ ๋งํ์ฌ ํธํ์ฑ์ ํ๋ณดํ๋ ๋์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋๋จธ์ง ๋ถ๋ถ์ ๋์์ฑ์ ํ์ฑํํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์๋ง์ ์ํธ์์ฉ ์์๊ฐ ์๋ ๋ณต์กํ ์ ํ ์์ธ ํ์ด์ง๊ฐ ์์ ์ ์์ต๋๋ค. ์ด๊ธฐ์ ๋์์ฑ ๊ธฐ๋ฅ์ ํ์ฑํํ๊ธฐ ์ํด ์ ์ฒด ์ ํ ์์ธ ์น์
์ experimental_LegacyHidden์ผ๋ก ๊ฐ์ ์ ์์ต๋๋ค.
import { unstable_LegacyHidden as LegacyHidden } from 'react-dom';
function ProductDetailsPage() {
return (
{/* ์ฌ๊ธฐ์ ๋ณต์กํ ์ ํ ์์ธ ์ปดํฌ๋ํธ๋ค */}
);
}
์ ํ ์์ธ ํ์ด์ง ๋ด์ ๊ฐ ์ปดํฌ๋ํธ๋ฅผ ๋์์ฑ ๋ ๋๋ง๊ณผ ํธํ๋๋๋ก ๋ฆฌํฉํ ๋งํ๋ฉด์ ํด๋น ํน์ ์ปดํฌ๋ํธ์์ experimental_LegacyHidden ๋ํผ๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ํ ๋ฒ์ ๋๊ท๋ชจ ๋ฆฌํฉํ ๋ง ์์
์ ํ์ง ์๊ณ ๋ ์ ์ฒด ํ์ด์ง์ ์ ์ง์ ์ผ๋ก ๋์์ฑ์ ๋์
ํ ์ ์์ต๋๋ค.
2. ๋ฌธ์ ์๋ ์ปดํฌ๋ํธ ๊ฒฉ๋ฆฌ
๋๋๋ก ๋์์ฑ ๊ธฐ๋ฅ์ด ํ์ฑํ๋์์ ๋ ์๊ธฐ์น ์์ ๋์์ ์ ๋ฐํ๋ ํน์ ์ปดํฌ๋ํธ๋ฅผ ๋ง์ฃผ์น ์ ์์ต๋๋ค. experimental_LegacyHidden API๋ ํด๋น ์ปดํฌ๋ํธ๋ฅผ ์ผ์์ ์ผ๋ก ์จ๊ธฐ๊ณ ๋ฌธ์ ๊ฐ ์ง์๋๋์ง ๊ด์ฐฐํจ์ผ๋ก์จ ๋ฌธ์ ๋ฅผ ๊ฒฉ๋ฆฌํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋์์ฑ ๋ ๋๋ง๊ณผ ํธํ๋์ง ์๋ ๋๊ธฐ์ ๋ถ์์ฉ์ ์์กดํ๋ ์ปดํฌ๋ํธ๋ฅผ ์๊ฐํด ๋ด
์๋ค. ๋์์ฑ์ด ํ์ฑํ๋๋ฉด ์ด ์ปดํฌ๋ํธ๋ ์ ํ๋ฆฌ์ผ์ด์
์ถฉ๋์ด๋ ์๋ชป๋ ๋์์ ์ ๋ฐํ ์ ์์ต๋๋ค. ํด๋น ์ปดํฌ๋ํธ๋ฅผ experimental_LegacyHidden์ผ๋ก ๊ฐ์ธ๋ฉด ๋ฌธ์ ๊ฐ ์ ๋ง๋ก ๊ทธ ํน์ ์ปดํฌ๋ํธ์ ๊ด๋ จ์ด ์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
import { unstable_LegacyHidden as LegacyHidden } from 'react-dom';
function MyComponent() {
return (
{/* ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ค */}
);
}
ProblematicComponent๊ฐ ์จ๊ฒจ์ก์ ๋ ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ง๋ค๋ฉด, ํด๋น ์ปดํฌ๋ํธ๊ฐ ๋ฌธ์ ์ ์์ธ์์ ํ์ธํ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ฉด ๋์์ฑ ๋ ๋๋ง๊ณผ ํธํ๋๋๋ก ์ปดํฌ๋ํธ๋ฅผ ๋ฆฌํฉํ ๋งํ๋ ๋ฐ ์ง์คํ ์ ์์ต๋๋ค.
3. ์ฑ๋ฅ ์ต์ ํ
ํน์ ์๋๋ฆฌ์ค์์๋ ์ ํ ์ค์ ๋ณต์กํ ์ปดํฌ๋ํธ๋ฅผ ์จ๊ธฐ๋ ๊ฒ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด๊ฐ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ๋ ๋๋ง์ ๊ณ์ฐ ๋น์ฉ์ด ๋ง์ด ๋ค๊ณ ์ด๊ธฐ ์ฌ์ฉ์ ๊ฒฝํ์ ์ค์ํ์ง ์์ ์ปดํฌ๋ํธ๊ฐ ์๋ค๋ฉด, ์ด๊ธฐ ๋ ๋๋ง ์ค์ ์จ๊ธฐ๊ณ ๋์ค์ ํ์ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋ณต์กํ ๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ํ์ํ๋ ์ปดํฌ๋ํธ๋ฅผ ์๊ฐํด ๋ด ์๋ค. ์ด ์๊ฐํ๋ฅผ ๋ ๋๋งํ๋ ๋ฐ๋ ์๋นํ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์ผ๋ฉฐ, ํ์ด์ง์ ์ด๊ธฐ ๋ ๋๋ง์ ์ง์ฐ์ํฌ ์ ์์ต๋๋ค. ์ด๊ธฐ ๋ ๋๋ง ์ค์ ์๊ฐํ๋ฅผ ์จ๊น์ผ๋ก์จ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด๊ฐ ์๋ต์ฑ์ ํฅ์์ํค๊ณ , ํ์ด์ง์ ๋๋จธ์ง ๋ถ๋ถ์ด ๋ก๋๋ ํ์ ์๊ฐํ๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
import { unstable_LegacyHidden as LegacyHidden } from 'react-dom';
function MyComponent() {
const [isVisualizationVisible, setIsVisualizationVisible] = React.useState(false);
React.useEffect(() => {
// ์๊ฐํ๋ฅผ ํ์ํ๊ธฐ ์ ์ง์ฐ ์๋ฎฌ๋ ์ด์
setTimeout(() => {
setIsVisualizationVisible(true);
}, 1000);
}, []);
return (
{/* ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ค */}
);
}
์ด ์์ ์์ ComplexVisualization ์ปดํฌ๋ํธ๋ ์ด๊ธฐ์ ์จ๊ฒจ์ ธ ์์ต๋๋ค. 1์ด์ ์ง์ฐ ํ ์ปดํฌ๋ํธ๊ฐ ํ์๋ฉ๋๋ค. ์ด๋ ํนํ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ด ์ ํ๋ ์ฅ์น์์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฒด๊ฐ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
experimental_LegacyHidden ์ฌ์ฉ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
experimental_LegacyHidden์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ ค๋ฉด ๋ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
- ๋ฌธ์ ์๋ ์ปดํฌ๋ํธ ์๋ณ: ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ฒ ์ ํ ๋ถ์ํ์ฌ ๋์์ฑ ๋ ๋๋ง๊ณผ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ปดํฌ๋ํธ๋ฅผ ์๋ณํ์ญ์์ค.
- ์๊ฒ ์์ํ๊ธฐ: ์ฒ์์๋ ๋ช ๊ฐ์ ์ปดํฌ๋ํธ๋ง
experimental_LegacyHidden์ผ๋ก ๊ฐ์ธ๊ณ , ์์ ๊ฐ์ด ์๊ธฐ๋ฉด ์ ์ฐจ ์ฌ์ฉ ๋ฒ์๋ฅผ ๋ํ๊ฐ์ญ์์ค. - ์ฒ ์ ํ ํ
์คํธ:
experimental_LegacyHidden์ ๋์ ํ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์๋๋ก ์๋ํ๋์ง ์๊ฒฉํ๊ฒ ํ ์คํธํ์ญ์์ค. - ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง: ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ
experimental_LegacyHidden์ด ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์ ์ถ์ ํ์ญ์์ค. - ๊ฒฐ์ ์ฌํญ ๋ฌธ์ํ: ํน์ ์ปดํฌ๋ํธ์
experimental_LegacyHidden์ ์ฌ์ฉํ๋ ์ด์ ์ ์๋ ค์ง ์ ํ ์ฌํญ์ ๋ช ํํ๊ฒ ๋ฌธ์ํํ์ญ์์ค. - ์ต์ ์ ๋ณด ์ ์ง: ์คํ์ ์ธ API์ด๋ฏ๋ก React ๋ฌธ์์ ์ ๋ฐ์ดํธ ๋ฐ ๋ณ๊ฒฝ ์ฌํญ์ ์ ๊ธฐ์ ์ผ๋ก ํ์ธํ์ญ์์ค.
ํผํด์ผ ํ ์ผ๋ฐ์ ์ธ ํจ์
experimental_LegacyHidden์ ์ ์ฉํ ๋๊ตฌ์ผ ์ ์์ง๋ง, ์ ์ฌ์ ์ธ ํจ์ ์ ์ธ์งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- ๊ณผ๋ํ ์ฌ์ฉ:
experimental_LegacyHidden์ ๋ฌด๋ถ๋ณํ๊ฒ ์ฌ์ฉํ์ง ๋ง์ญ์์ค. ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ผ๋ก ์๋ ค์ง ์ปดํฌ๋ํธ์๋ง ์ฌ์ฉํ์ญ์์ค. - ๊ทผ๋ณธ ์์ธ ๋ฌด์:
experimental_LegacyHidden์ ์๊ตฌ์ ์ธ ํด๊ฒฐ์ฑ ์ผ๋ก ์์กดํ์ง ๋ง์ญ์์ค. ์ด๋ ๊ทผ๋ณธ์ ์ธ ์ปดํฌ๋ํธ๋ฅผ ๋ฆฌํฉํ ๋งํ๋ ๋์ ์ฌ์ฉํ๋ ์์ ํด๊ฒฐ์ฑ ์ ๋๋ค. - ์จ๊ฒจ์ง ์ฑ๋ฅ ๋ณ๋ชฉ ํ์ ์์ฑ: ์ปดํฌ๋ํธ๋ฅผ ์จ๊ธด๋ค๊ณ ํด์ ์ฑ๋ฅ ์ํฅ์ด ๋ฐ๋์ ์ ๊ฑฐ๋๋ ๊ฒ์ ์๋๋๋ค. ์ปดํฌ๋ํธ๋ ์จ๊ฒจ์ ธ ์์ ๋๋ ์ฌ์ ํ ๋ง์ดํธ๋์ด ๋ฆฌ์์ค๋ฅผ ์๋นํ ์ ์์ต๋๋ค.
- ์ ๊ทผ์ฑ ๋ฌธ์ : ์ปดํฌ๋ํธ๋ฅผ ์จ๊ธฐ๋ ๊ฒ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ทผ์ฑ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ํ์ญ์์ค. ๋ณด์กฐ ๊ธฐ์ ์ ์์กดํ๋ ์ฌ์ฉ์๋ฅผ ์ํด ๋์ฒด ์ฝํ ์ธ ๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค.
experimental_LegacyHidden์ ๋์
experimental_LegacyHidden์ ์ ์ฉํ ๋๊ตฌ์ด์ง๋ง, ๋ ๊ฑฐ์ ์ปดํฌ๋ํธ๋ฅผ ๋ค๋ฃจ๋ ์ ์ผํ ์ต์
์ ์๋๋๋ค. ๊ณ ๋ คํด ๋ณผ ๋งํ ๋ช ๊ฐ์ง ๋์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ฆฌํฉํ ๋ง: ๊ฐ์ฅ ์ด์์ ์ธ ํด๊ฒฐ์ฑ ์ ๋ ๊ฑฐ์ ์ปดํฌ๋ํธ๋ฅผ ๋์์ฑ ๋ ๋๋ง๊ณผ ํธํ๋๋๋ก ๋ฆฌํฉํ ๋งํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ปดํฌ๋ํธ์ ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋๋ฅผ ์ ๋ฐ์ดํธํ๊ณ , ๋๊ธฐ์ ๋ถ์์ฉ์ ํผํ๋ฉฐ, React์ ์ํ ๊ด๋ฆฌ API๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ ํฌํจํ ์ ์์ต๋๋ค.
- ์ฝ๋ ๋ถํ (Code Splitting): ์ฝ๋ ๋ถํ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์์ ์ฒญํฌ๋ก ๋๋์ด ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์ด๋ ๋ง์ ์ปดํฌ๋ํธ๊ฐ ์๋ ๋๊ท๋ชจ ๋ ๊ฑฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํนํ ์ ์ฉํฉ๋๋ค.
- ๋๋ฐ์ด์ฑ(Debouncing) ๋ฐ ์ค๋กํ๋ง(Throttling): ๋๋ฐ์ด์ฑ๊ณผ ์ค๋กํ๋ง์ ์์ฃผ ํธ์ถ๋๋ ์ด๋ฒคํธ ํธ๋ค๋ฌ์ ์ฑ๋ฅ์ ๊ฐ์ ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์ด๋ ์ฌ์ฉ์ ์ ๋ ฅ์ด๋ ์ ๋๋ฉ์ด์ ์ ์ฒ๋ฆฌํ๋ ์ปดํฌ๋ํธ์ ์ ์ฉํ ์ ์์ต๋๋ค.
- ๋ฉ๋ชจ์ด์ ์ด์ (Memoization): ๋ฉ๋ชจ์ด์ ์ด์ ์ ๋์ผํ props๋ก ์์ฃผ ๋ค์ ๋ ๋๋ง๋๋ ์ปดํฌ๋ํธ์ ์ฑ๋ฅ์ ๊ฐ์ ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
๊ตญ์ ํ(i18n) ๊ณ ๋ ค ์ฌํญ
๊ตญ์ ํ๋ ์ ํ๋ฆฌ์ผ์ด์
์์ experimental_LegacyHidden์ ์ฌ์ฉํ ๋, ๋ค๋ฅธ ๋ก์ผ์ผ๊ณผ ์ธ์ด์ ๋ฏธ์น๋ ์ํฅ์ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ์ฃผ์ ๊ณ ๋ ค ์ฌํญ์
๋๋ค.
- ํ ์คํธ ํ์ฅ: ์ธ์ด๋ง๋ค ํ ์คํธ ๊ธธ์ด๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ํ ๋ก์ผ์ผ์์ ์ปดํฌ๋ํธ๋ฅผ ์จ๊ธฐ๋ ๊ฒ์ด ํ ์คํธ๊ฐ ๋ ์งง์ ๋ค๋ฅธ ๋ก์ผ์ผ์์๋ ํ์ํ์ง ์์ ์ ์์ต๋๋ค.
- ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ(RTL) ๋ ์ด์์: ์ ํ๋ฆฌ์ผ์ด์ ์ด RTL ์ธ์ด๋ฅผ ์ง์ํ๋ ๊ฒฝ์ฐ, ์ปดํฌ๋ํธ๋ฅผ ์จ๊ธฐ๋ ๊ฒ์ด RTL ๋ชจ๋์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ด์์์ด๋ ๊ธฐ๋ฅ์ ๋ฐฉํดํ์ง ์๋๋ก ํ์ญ์์ค.
- ์ ๊ทผ์ฑ: ์ปดํฌ๋ํธ๋ฅผ ์จ๊ธฐ๋ ๊ฒ์ด ๋ค๋ฅธ ์ธ์ด๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๋ณด์กฐ ๊ธฐ์ ์ ์ฌ์ฉํ๋ ์ฌ์ฉ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ทผ์ฑ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ํ์ญ์์ค. ํ์ํ ๊ฒฝ์ฐ ํ์งํ๋ ๋์ฒด ์ฝํ ์ธ ๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ์ญ์์ค.
์ฌ๋ก ์ฐ๊ตฌ: ๊ธ๋ก๋ฒ ๋ด์ค ์น์ฌ์ดํธ ๋ง์ด๊ทธ๋ ์ด์
์๋ ์ ๊ฑธ์ณ ๋ฐ์ ํด ์จ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ฐ์ง ๋๊ท๋ชจ ๊ธ๋ก๋ฒ ๋ด์ค ์น์ฌ์ดํธ๋ฅผ ์๊ฐํด ๋ด ์๋ค. ์ด ์น์ฌ์ดํธ๋ ์ฌ๋ฌ ์ธ์ด์ ์ง์ญ์ ์ง์ํ๋ฉฐ ์๋ง์ ์ปดํฌ๋ํธ๊ฐ ์๋ ๋ณต์กํ ์ํคํ ์ฒ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ฐ๋ฐํ์ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ๊ธฐ ์ํด ์น์ฌ์ดํธ๋ฅผ React์ ๋์์ฑ ๋ ๋๋ง ๊ธฐ๋ฅ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ณ ์ถ์ง๋ง, ๋ ๊ฑฐ์ ์ปดํฌ๋ํธ์์ ์ ์ฌ์ ์ธ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ์ฐ๋ คํ๊ณ ์์ต๋๋ค.
ํ์ experimental_LegacyHidden์ ์ฌ์ฉํ์ฌ ์น์ฌ์ดํธ์ ์ ์ง์ ์ผ๋ก ๋์์ฑ์ ๋์
ํ๊ธฐ๋ก ๊ฒฐ์ ํฉ๋๋ค. ๊ทธ๋ค์ ๋๊ธฐ์ ๋ถ์์ฉ์ด๋ ๋ณต์กํ ์ ๋๋ฉ์ด์
์ ์์กดํ๋ ์ปดํฌ๋ํธ์ ๊ฐ์ด ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ผ๋ก ์๋ ค์ง ์ปดํฌ๋ํธ๋ฅผ ์๋ณํ๋ ๊ฒ๋ถํฐ ์์ํฉ๋๋ค. ๊ทธ๋ค์ ์ด๋ฌํ ์ปดํฌ๋ํธ๋ค์ experimental_LegacyHidden์ผ๋ก ๊ฐ์ธ ๋์์ฑ ๋ ๋๋ง์ ์ํฅ์ ๋ฐ์ง ์๋๋ก ํฉ๋๋ค.
๊ฐ ์ปดํฌ๋ํธ๋ฅผ ๋์์ฑ ๋ ๋๋ง๊ณผ ํธํ๋๋๋ก ๋ฆฌํฉํ ๋งํ๋ฉด์ experimental_LegacyHidden ๋ํผ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ๋ํ ์ฝ๋ ๋ถํ ์ ์ฌ์ฉํ์ฌ ์น์ฌ์ดํธ๋ฅผ ๋ ์์ ์ฒญํฌ๋ก ๋๋์ด ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํฉ๋๋ค. ๊ฐ ๋ณ๊ฒฝ ํ ๋ชจ๋ ์ง์ ์ธ์ด ๋ฐ ์ง์ญ์์ ์น์ฌ์ดํธ๊ฐ ์์๋๋ก ์๋ํ๋์ง ์ฒ ์ ํ ํ
์คํธํฉ๋๋ค.
experimental_LegacyHidden์ ๋ค๋ฅธ ์ต์ ํ ๊ธฐ์ ๊ณผ ํจ๊ป ์ฌ์ฉํจ์ผ๋ก์จ, ํ์ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ฐฉํดํ์ง ์๊ณ ๊ธ๋ก๋ฒ ๋ด์ค ์น์ฌ์ดํธ๋ฅผ React์ ๋์์ฑ ๋ ๋๋ง ๊ธฐ๋ฅ์ผ๋ก ์ฑ๊ณต์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
experimental_LegacyHidden์ ๊ฐ๋ฐ์๋ค์ด ๋ ๊ฑฐ์ React ์ ํ๋ฆฌ์ผ์ด์
์ ๋์์ฑ ๊ธฐ๋ฅ์ ์ ์ง์ ์ผ๋ก ๋์
ํ๋ ๋ฐ ๋์์ ์ค ์ ์๋ ๊ฐ๋ ฅํ ๋๊ตฌ์
๋๋ค. ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ผ๋ก ์๋ ค์ง ์ปดํฌ๋ํธ๋ฅผ ์ ํ์ ์ผ๋ก ์จ๊น์ผ๋ก์จ ๊ฐ๋ฐ์๋ค์ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ๋ ํจ๊ณผ์ ์ผ๋ก ๊ฒฉ๋ฆฌํ๊ณ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ experimental_LegacyHidden์ ์ ์คํ๊ฒ ์ฌ์ฉํ๊ณ ๋ฆฌํฉํ ๋ง ๋ฐ ์ฝ๋ ๋ถํ ๊ณผ ๊ฐ์ ๋์์ ์ธ ํด๊ฒฐ์ฑ
์ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. API๊ฐ ์์ง ์คํ์ ์ด๊ณ ๋ณ๊ฒฝ๋ ์ ์์ผ๋ฏ๋ก ์ต์ React ๋ฌธ์๋ฅผ ํญ์ ํ์ธํ๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค. ์ด ๊ฐ์ด๋์ ์ค๋ช
๋ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ฉด experimental_LegacyHidden์ ํ์ฉํ์ฌ ์์ ๊ฐ์ ๊ฐ๊ณ React ํ๋ก์ ํธ๋ฅผ ํ๋ํํ๊ณ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค.